﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="LocalDateTime.cs" company="">
//   
// </copyright>
// <summary>
//   LocalDateTime.cs
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Libium.Core
{
    // public struct LocalDateTime
    // {
    // 	private DateTime m_dateTime;

    // 	public LocalDateTime(DateTime dateTime)
    // 	{
    // 		m_dateTime = dateTime.ToUniversalTime();
    // 	}
    // 	public LocalDateTime(Int64 ticks)
    // 	{
    // 		m_dateTime = new DateTime(ticks);
    // 		m_dateTime = DateTime.SpecifyKind(m_dateTime, DateTimeKind.Utc);
    // 	}

    // 	public override int GetHashCode()
    // 	{
    // 		return m_dateTime.GetHashCode();
    // 	}

    // 	public Boolean Equals(UtcDateTime value)
    // 	{
    // 		return (DateTime.Ticks == value.DateTime.Ticks);
    // 	}
    // 	public override Boolean Equals(Object value)
    // 	{
    // 		if (value is UtcDateTime)
    // 		{
    // 			return Equals((UtcDateTime)value);
    // 		}
    // 		return false;
    // 	}
    // 	public static Boolean Equals(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return d1.Equals(d2);
    // 	}

    // 	public static Boolean operator ==(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return Equals(d1, d2);
    // 	}
    // 	public static Boolean operator >(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return (d1.DateTime.Ticks > d2.DateTime.Ticks);
    // 	}
    // 	public static Boolean operator >=(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return (d1.DateTime.Ticks >= d2.DateTime.Ticks);
    // 	}
    // 	public static Boolean operator !=(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return (d1.DateTime.Ticks != d2.DateTime.Ticks);
    // 	}
    // 	public static Boolean operator <(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return (d1.DateTime.Ticks < d2.DateTime.Ticks);
    // 	}
    // 	public static Boolean operator <=(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return (d1.DateTime.Ticks <= d2.DateTime.Ticks);
    // 	}
    // 	public static UtcDateTime operator +(UtcDateTime d, TimeSpan t)
    // 	{
    // 		Int64 ticks = d.DateTime.Ticks;
    // 		Int64 num2 = t.Ticks;
    // 		if ((num2 > (0x2bca2875f4373fff - ticks)) || (num2 < -ticks))
    // 		{
    // 			throw new ArgumentOutOfRangeException("t", "Overflow_DateArithmetic");
    // 		}
    // 		return new UtcDateTime(ticks + num2);
    // 	}
    // 	public static TimeSpan operator -(UtcDateTime d1, UtcDateTime d2)
    // 	{
    // 		return new TimeSpan(d1.Ticks - d2.Ticks);
    // 	}
    // 	public static UtcDateTime operator -(UtcDateTime d, TimeSpan t)
    // 	{
    // 		Int64 ticks = d.Ticks;
    // 		Int64 num2 = t.Ticks;
    // 		if ((ticks < num2) || ((ticks - 0x2bca2875f4373fff) > num2))
    // 		{
    // 			throw new ArgumentOutOfRangeException("t", "Overflow_DateArithmetic");
    // 		}
    // 		return new UtcDateTime(ticks - num2);
    // 	}

    // 	public String ToString(IFormatProvider formatProvider)
    // 	{
    // 		return DateTime.ToString(formatProvider);
    // 	}
    // 	public static UtcDateTime Parse(String str, IFormatProvider formatProvider)
    // 	{
    // 		return new UtcDateTime(
    // 			DateTime.SpecifyKind(
    // 				DateTime.Parse(str, formatProvider),
    // 				DateTimeKind.Utc));
    // 	}
    // 	public Int64 ToBinary()
    // 	{
    // 		return DateTime.ToBinary();
    // 	}
    // 	public static UtcDateTime FromBinary(Int64 val)
    // 	{
    // 		return new UtcDateTime(
    // 			DateTime.SpecifyKind(
    // 				DateTime.FromBinary(val),
    // 				DateTimeKind.Utc));
    // 	}

    // 	public static UtcDateTime Now
    // 	{
    // 		get
    // 		{
    // 			return new UtcDateTime(DateTime.UtcNow);
    // 		}
    // 	}
    // 	public static UtcDateTime MinValue
    // 	{
    // 		get
    // 		{
    // 			return new UtcDateTime(
    // 				DateTime.SpecifyKind(
    // 					DateTime.MinValue,
    // 					DateTimeKind.Utc));
    // 		}
    // 	}
    // 	public static UtcDateTime MaxValue
    // 	{
    // 		get
    // 		{
    // 			return new UtcDateTime(
    // 				DateTime.SpecifyKind(
    // 					DateTime.MaxValue,
    // 					DateTimeKind.Utc));
    // 		}
    // 	}

    // 	internal DateTime DateTime
    // 	{
    // 		get { return m_dateTime; }
    // 		set { m_dateTime = value; }
    // 	}

    // 	public Int64 Ticks
    // 	{
    // 		get
    // 		{
    // 			return m_dateTime.Ticks;
    // 		}
    // 	}
    // }
}